package tests;

import common.Utils;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;

import static common.Utils.driver;

public class LoginPage extends Utils {
    //该页面的URL
    public static String url = "http://124.223.114.169:8081/login.html";
    public LoginPage(){
        super(url);
    }


    //用例：
    /**
     * 检查页面是否加载成功
     * （页面标志性元素是否存在）
     */
    public void loginRight(){
        driver.findElement(By.cssSelector("#submit"));
    }

    /**
     * 登录信息正确，登录成功，跳转至列表页
     */
    public void loginSuc() throws InterruptedException {
        driver.navigate().refresh();//刷新一下，防止有之前的输入
        driver.findElement(By.cssSelector("#user")).sendKeys("zhangsan");
        driver.findElement(By.cssSelector("#password")).sendKeys("123456");

        driver.findElement(By.cssSelector("#submit")).click();

        //弹窗提示“登录成功”，点击确认，发生跳转、
        Thread.sleep(1000);//需要加等待，否则可能由于执行过快，找不到alert而报错
        Alert alert = driver.switchTo().alert();
        alert.accept();
        //获取跳转之后的URL
        String exp = driver.getCurrentUrl();
        assert exp.equals("http://124.223.114.169:8081/list.html");
    }

    /**
     * 不输入一项或者两项，不能登录，并弹窗提示
     */
    public void loginWrongByEmpty() throws InterruptedException {
        driver.get(url);//削弱对测试顺序先后的依赖。不用关系之前一个测试用例的页面如何。直接重新加载这个页面
        driver.navigate().refresh();//刷新一下，防止有之前的输入
        driver.findElement(By.cssSelector("#user")).sendKeys("");
        driver.findElement(By.cssSelector("#password")).sendKeys("123456");
        driver.findElement(By.cssSelector("#submit")).click();
        Thread.sleep(1000);//等弹窗
        Alert alert = driver.switchTo().alert();
        alert.accept();
    }

    /**
     * 输入错误的登录信息，不能登录，弹窗提示，点击确认关闭弹窗之后，是没有输入信息的登录页面
     */
    public void loginWrong() throws InterruptedException {
        driver.get(url);
        driver.navigate().refresh();
        driver.findElement(By.cssSelector("#user")).sendKeys("zhangsan");
        driver.findElement(By.cssSelector("#password")).sendKeys("666666");
        driver.findElement(By.cssSelector("#submit")).click();
        Thread.sleep(1000);
        Alert alert = driver.switchTo().alert();
        alert.accept();

        String userInput = driver.findElement(By.cssSelector("#user")).getText();
        String passwordInput = driver.findElement(By.cssSelector("#password")).getText();
        assert userInput.equals("");
        assert passwordInput.equals("");

    }
}
